Ubuntu18.04MysqlAccess denied for user root@localhost/忘记密码错误解决方法 您所在的位置:网站首页 木子芳人 fiona Ubuntu18.04MysqlAccess denied for user root@localhost/忘记密码错误解决方法

Ubuntu18.04MysqlAccess denied for user root@localhost/忘记密码错误解决方法

2023-08-11 12:41| 来源: 网络整理| 查看: 265

我之前在自己的云服务器安装好之后,登录也是这个错,最后百度发现新装的因为没有密码所以的得设置密码,具体参考这篇, https://www.cnblogs.com/cpl9412290130/p/9583868.html

后来因为工作忙,隔了好久去玩的时候又连不上了,照着原来的修改 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 里的 skip-grant-tables 无密码登录,改完之后还是不行,就用了另一个博主的办法, 把自己的经过也贴一下 具体参考这篇: https://blog.csdn.net/qq_38737992/article/details/81090373

1.首先输入以下指令:

sudo cat /etc/mysql/debian.cnf

获取到password 加粗样式

再输入以下指令: mysql -u debian-sys-maint -p 注://这条指令的密码输入是输入第一条指令获得的信息中的 password = ww40H9DiktkQSXmE 得来。 请根据自己的实际情况填写!`

在这里插入图片描述 2. 登录成功了,开始修改密码,本篇文章将密码修改成 root , 用户可自行定义。

use mysql; update user set plugin="mysql_native_password"; //这句注意点,有点长: update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost'; //刷新权限 flush privileges; 重新启动mysql: sudo service mysql restart mysql -u root -p // 启动后输入已经修改好的密码:root

在这里插入图片描述

再补充一条,修改远程连接的密码,

grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option; flush privileges; 库名:要远程访问的数据库名称,所有的数据库使用“*” 表名:要远程访问的数据库下的表的名称,所有的表使用“*” 用户名:要赋给远程访问权限的用户名称 IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%” 密码:要赋给远程访问权限的用户对应使用的密码

示例:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'lxh' WITH GRANT OPTION; # 所有的地址都可以使用root用户,密码为lxh远程访问所有的数据库 flush privileges; GRANT ALL PRIVILEGES ON testdb.* TO 'lxh'@'172.16.52.225' IDENTIFIED BY 'lxh' WITH GRANT OPTION; # IP为172.16.52.225的电脑可以使用lxh用户,密码为lxh远程访问数据库testdb的所有表

这块是因为有一天修改了密码,mysql的登录密码是root,但是修改完之后的密码是123456, 起初不懂这条语句,最后才发现修改的是远程连接的密码,感觉挺有用的! 具体参考这篇: https://blog.csdn.net/louisliaoxh/article/details/52767209

2019-11-19补:安装完之后使用navicat连接出现:2003 - Can’t connect to MySQL server on ’ '(10038), 这块之前是把 /etc/mysql/mysql.conf.d/mysqld.cnf 里的bind-address改成0.0.0.1,但是连接依然有问题,最后注释就行了 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有